const { NO_PERMISSION } = require("../config/error")
const { checkPermission } = require("../service/permission.service")

// // 用户访问资源的权限
// const verifyPermission = async (ctx, next) => {
//   // 获取表格id、用户id
//   const { momentId } = ctx.params
//   const { id } = ctx.user

//   const isPermission = await checkPermission(momentId, id)
//   if (!isPermission) {
//     return ctx.app.emit('error', NO_PERMISSION, ctx)
//   }

//   await next()
// }

// 用户访问资源的权限
const verifyPermission = async (ctx, next) => {
  // 获取表格某条记录的id及表名
  const keyName = Object.keys(ctx.params)[0]
  const recordId = ctx.params[keyName] // 表中某记录的id
  const tableName = keyName.replace('Id', '') // 表名

  // 用户id
  const { id } = ctx.user

  const isPermission = await checkPermission(tableName, recordId, id)
  if (!isPermission) {
    return ctx.app.emit('error', NO_PERMISSION, ctx)
  }

  await next()
}


module.exports = {
  verifyPermission
}